package com.nettyBasic.util;

import io.netty.buffer.ByteBuf;

import static io.netty.buffer.ByteBufUtil.appendPrettyHexDump;
import static io.netty.util.internal.StringUtil.NEWLINE;

/**
 * @author： pang-yun
 * @date： 2021-09-13 16:27
 * 功能目的 ：用于  直接观察  bytebuf 的 工具类
 */

public class ByteBufLog {

    // 用于直观观察 bytebuf 的 工具类
    public static void bufLog(ByteBuf buf){
        int length = buf.readableBytes();
        int rows= length/16 + (length % 15 ==0 ? 0 : 1) +4;
        StringBuilder builder = new StringBuilder(rows*80*2)
                .append("read index : ").append(buf.readerIndex())
                .append("\n")
                .append("write index: ").append(buf.writerIndex())
                .append("\n")
                .append("capacity:").append(buf.capacity())
                .append(NEWLINE);
        appendPrettyHexDump(builder,buf);
        System.out.println(builder.toString());
    }
}
